package com.ruoyi.task.service;

import com.ruoyi.task.domain.FhPdTaskImportConfig;
import com.ruoyi.task.domain.ZhTaskImportConfig;
import java.util.List;
import com.ruoyi.task.domain.TaskConfig;
import com.ruoyi.task.domain.TaskImportConfig;

/**
 * 任务配置配置Service接口
 * 
 * @author ruoyi
 * @date 2025-04-24
 */
public interface ITaskConfigService 
{
    /**
     * 查询任务配置配置
     * 
     * @param taskConfigId 任务配置配置主键
     * @return 任务配置配置
     */
    public TaskConfig selectTaskConfigByTaskConfigId(Long taskConfigId);

    /**
     * 查询任务配置配置列表
     * 
     * @param taskConfig 任务配置配置
     * @return 任务配置配置集合
     */
    public List<TaskConfig> selectTaskConfigList(TaskConfig taskConfig);

    /**
     * 随机查询出多少条任务配置
     * @param length
     * @return
     */
    public List<TaskConfig> queryTaskConfigList(Integer length, String taskType);

    /**
     * 新增任务配置配置
     * 
     * @param taskConfig 任务配置配置
     * @return 结果
     */
    public int insertTaskConfig(TaskConfig taskConfig);

    /**
     * 修改任务配置配置
     * 
     * @param taskConfig 任务配置配置
     * @return 结果
     */
    public int updateTaskConfig(TaskConfig taskConfig);


    public int updateTaskConfigStatus(TaskConfig taskConfig);


    /**
     * 批量删除任务配置配置
     * 
     * @param taskConfigIds 需要删除的任务配置配置主键集合
     * @return 结果
     */
    public int deleteTaskConfigByTaskConfigIds(Long[] taskConfigIds);


    /**
     * 批量修改任务配置状态
     * @param taskConfigIds
     * @param status
     * @param updateBy
     * @return
     */
    public int updateTaskConfigStatusByIds(Long[] taskConfigIds, String status, String updateBy);


    /**
     * 删除任务配置配置信息
     * 
     * @param taskConfigId 任务配置配置主键
     * @return 结果
     */
    public int deleteTaskConfigByTaskConfigId(Long taskConfigId);

    /**
     * 导入任务配置配置信息
     *
     * @param taskImportConfigList 任务配置配置主键
     * @return 结果
     */
    public boolean importTaskConfig(List<TaskImportConfig> taskImportConfigList, String createBy);

    /**
     * 导入总行任务配置配置信息
     * @param taskImportConfigList
     * @param createBy
     * @return
     */
    public boolean importZhTaskConfig(List<ZhTaskImportConfig> taskImportConfigList, String createBy);

    /**
     * 导入分行盘点任务配置信息
     * @param taskImportConfigList
     * @param createBy
     * @return
     */
    public List<FhPdTaskImportConfig> importFhPdTaskConfig(List<FhPdTaskImportConfig> taskImportConfigList, String createBy);

    /**
     * 生成主任务
     * @param taskConfig
     */
    public void generateMainTask(TaskConfig taskConfig);


    /**
     * 生成浩云分行采集任务
     * @param taskConfig
     */
    public void generateBranchHyTask(TaskConfig taskConfig);
}
